package br.com.werp.regras.geral.integracao;

import br.com.werp.regras.geral.util.Constantes;
import br.com.werp.regras.geral.vos.tabelas.Plano_conta;

import java.sql.Connection;
import java.sql.SQLException;

import java.util.List;
import java.util.ResourceBundle;


/**
 * @author Sobreira
 * Criado em 12/05/2005
 *
 */
public class Plano_contaDAO extends MasterDAO {
	
	private static Plano_contaDAO plano_contaDAO;
	
    /**
     * @param banco
     * @throws Exception
     */
    private Plano_contaDAO(String banco) throws Exception {
        super(banco);
    }
    
    public static Plano_contaDAO getPlano_contaDAO() throws Exception {
        if (plano_contaDAO == null) {
            ResourceBundle bundle = ResourceBundle.getBundle(Constantes.CONFIG);
            plano_contaDAO = new Plano_contaDAO(bundle.getString(
                        Constantes.BANCO));
        }

        return plano_contaDAO;
    }


    public Plano_conta obterPlano_conta(String Plano_contaId)
        throws Exception {
        return obterPlano_conta(getConexao(), Plano_contaId);
    }

    public Plano_conta obterPlano_conta(Connection conexao, String Plano_contaId)
        throws Exception {
        if (conexao == null) {
            conexao = getConexao();
        }

        try {
            List l = preencheVO(conexao, new Plano_conta(),
                    " plct_id = " + Plano_contaId);

            if (l.isEmpty()) {
                return null;
            }

            return (Plano_conta) l.get(0);
        } finally {
            if (conexao.getAutoCommit()) {
                liberaConeccao(conexao);
            }
        }
    }

    public List obterPlano_conta(Connection connection, Plano_conta plano_conta)
        throws Exception {
        if (connection == null) {
            connection = getConexao();
        }

        try {
            return pesquisarVO(connection, plano_conta);
        } finally {
            if (connection.getAutoCommit()) {
                liberaConeccao(connection);
            }
        }
    }

    public List obterPlano_conta(Plano_conta plano_conta)
        throws Exception {
        return obterPlano_conta(null, plano_conta);
    }
}
